package com.fw.service.inboundmessagelog.bean;

import javax.validation.constraints.Digits;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotBlank;

import com.fw.service.bean.BaseBean;

public class InboundMessageLogBean extends BaseBean {

    private static final long serialVersionUID = 1L;

    private Long id;

    @NotBlank(message = "Service ID is mandatory.")
    @Size(min = 1, max = 15, message = "Service ID size must be between {min} and {max}")
    private String serviceID;
    @NotBlank(message = "Merchant ID is mandatory.")
    @Size(min = 1, max = 11, message = "Merchant ID size must be between {min} and {max}")
    private String merchantID;
    @NotBlank(message = "Invoice No. or Merchant Transaction ID is mandatory.")
    @Size(min = 1, max = 19, message = "Invoice No. or Merchant Transaction ID size must be between {min} and {max}")
    private String invoiceNo;
    @NotBlank(message = "Product Desc is mandatory.")
    @Size(min = 1, max = 50, message = "Product Desc size must be between {min} and {max}")
    private String productDesc;
    @NotBlank(message = "Amount is mandatory.")
    @Pattern(regexp = "[0-9]*", message = "Amount must be number")
    @Digits(integer = 12, fraction = 0, message = "Amount value out of bounds (<{integer} digits>.<{fraction} digits> expected)")
    private String amount;
    @NotBlank(message = "Currency Code is mandatory.")
    @Size(min = 1, max = 3, message = "Currency Code size must be between {min} and {max}")
    private String currencyCode;
    @NotBlank(message = "Language is mandatory.")
    @Size(min = 1, max = 2, message = "Language size must be between {min} and {max}")
    private String language;
    @Size(min = 0, max = 100, message = "Customer Name must be between {min} and {max}")
    private String customerName;
    @Email(message = "Customer Email not a well-formed email address")
    @Size(min = 0, max = 100, message = "Customer Email must be between {min} and {max}")
    private String customerEmail;
    @Pattern(regexp = "[0-9]*", message = "Customer Phone must be number")
    @Size(min = 0, max = 20, message = "Customer Phone must be between {min} and {max}")
    private String customerPhone;
    @Size(min = 0, max = 10, message = "Category ID must be between {min} and {max}")
    private String categoryID;
    @Pattern(regexp = "[0-9]*", message = "Point Member ID must be number")
    @Size(min = 0, max = 50, message = "Point Member ID must be between {min} and {max}")
    private String pointMemeberID;
    @Size(min = 0, max = 150, message = "Pay Method must be between {min} and {max}")
    private String payMethod;
    @Pattern(regexp = "[0-9]*", message = "Type of Credit Card must be number")
    @Size(min = 0, max = 1, message = "Type of Credit Card must be between {min} and {max}")
    private String typeOfCreditCard;
    @Pattern(regexp = "[0-9]*", message = "Cash Expired Date must be number")
    @Size(min = 0, max = 14, message = "Cash Expired Date must be between {min} and {max}")
    private String cashExpiredDateTime;
    @Size(min = 0, max = 150, message = "Hash Value must be between {min} and {max}")
    private String hashValue;
    @Size(min = 0, max = 500, message = "Success URL must be between {min} and {max}")
    private String successURL;
    @Size(min = 0, max = 500, message = "Fail URL must be between {min} and {max}")
    private String failURL;
    @Size(min = 0, max = 500, message = "Cancel URL must be between {min} and {max}")
    private String cancelURL;
    @Pattern(regexp = "[0-9]*", message = "Redirect Time must be number")
    @Size(min = 0, max = 3, message = "Redirect Time must be between {min} and {max}")
    private String redirectTime;
    @Size(min = 0, max = 1, message = "Enable Skip page must be between {min} and {max}")
    private String enableSkippage;

    public String getServiceID() {
	return serviceID;
    }

    public void setServiceID(String serviceID) {
	this.serviceID = serviceID;
    }

    public String getMerchantID() {
	return merchantID;
    }

    public void setMerchantID(String merchantID) {
	this.merchantID = merchantID;
    }

    public String getInvoiceNo() {
	return invoiceNo;
    }

    public void setInvoiceNo(String invoiceNo) {
	this.invoiceNo = invoiceNo;
    }

    public String getProductDesc() {
	return productDesc;
    }

    public void setProductDesc(String productDesc) {
	this.productDesc = productDesc;
    }

    public String getAmount() {
	return amount;
    }

    public void setAmount(String amount) {
	this.amount = amount;
    }

    public String getCurrencyCode() {
	return currencyCode;
    }

    public void setCurrencyCode(String currencyCode) {
	this.currencyCode = currencyCode;
    }

    public String getLanguage() {
	return language;
    }

    public void setLanguage(String language) {
	this.language = language;
    }

    public String getCustomerName() {
	return customerName;
    }

    public void setCustomerName(String customerName) {
	this.customerName = customerName;
    }

    public String getCustomerEmail() {
	return customerEmail;
    }

    public void setCustomerEmail(String customerEmail) {
	this.customerEmail = customerEmail;
    }

    public String getCustomerPhone() {
	return customerPhone;
    }

    public void setCustomerPhone(String customerPhone) {
	this.customerPhone = customerPhone;
    }

    public String getCategoryID() {
	return categoryID;
    }

    public void setCategoryID(String categoryID) {
	this.categoryID = categoryID;
    }

    public String getPointMemeberID() {
	return pointMemeberID;
    }

    public void setPointMemeberID(String pointMemeberID) {
	this.pointMemeberID = pointMemeberID;
    }

    public String getPayMethod() {
	return payMethod;
    }

    public void setPayMethod(String payMethod) {
	this.payMethod = payMethod;
    }

    public String getTypeOfCreditCard() {
	return typeOfCreditCard;
    }

    public void setTypeOfCreditCard(String typeOfCreditCard) {
	this.typeOfCreditCard = typeOfCreditCard;
    }

    public String getCashExpiredDateTime() {
	return cashExpiredDateTime;
    }

    public void setCashExpiredDateTime(String cashExpiredDateTime) {
	this.cashExpiredDateTime = cashExpiredDateTime;
    }

    public String getHashValue() {
	return hashValue;
    }

    public void setHashValue(String hashValue) {
	this.hashValue = hashValue;
    }

    public String getSuccessURL() {
	return successURL;
    }

    public void setSuccessURL(String successURL) {
	this.successURL = successURL;
    }

    public String getFailURL() {
	return failURL;
    }

    public void setFailURL(String failURL) {
	this.failURL = failURL;
    }

    public String getCancelURL() {
	return cancelURL;
    }

    public void setCancelURL(String cancelURL) {
	this.cancelURL = cancelURL;
    }

    public String getRedirectTime() {
	return redirectTime;
    }

    public void setRedirectTime(String redirectTime) {
	this.redirectTime = redirectTime;
    }

    public String getEnableSkippage() {
	return enableSkippage;
    }

    public void setEnableSkippage(String enableSkippage) {
	this.enableSkippage = enableSkippage;
    }

    public Long getId() {
	return id;
    }

    public void setId(Long id) {
	this.id = id;
    }

}
